\documentclass[a4paper,12pt]{scrartcl} 

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{graphicx}
\usepackage{url}
\usepackage{fancyhdr}
\usepackage{textcomp}
\usepackage{hyperref}

\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\small{Aleksander Zotov {\tiny(2646129)}, 
					Benedikt Markt {\tiny(2637358)}, 
	\				Aliaksei Babkovich {\tiny(2698083)}}}
\fancyhead[C]{\small{}}
\fancyhead[R]{\small{Gruppe 20}}
\fancyfoot[C]{\thepage}

\title{Projektplan SatPro}
\author{Aleksander Zotov {\small(2646129)}\\
        Benedikt Markt {\small(2637358)}\\
        Aliaksei Babkovich {\small(2698083)}}
\date{24. Oktober 2012\\
\small{Version: 1.4}\\
\small{Letzte Änderung: 03. Januar 2013}}

\begin{document}
\maketitle
\newpage
\tableofcontents
\newpage

\section{Einleitung}
	\subsection{Zweck des Projektplans}
		In diesem Projektplan sind die Ziele des Projekts und Zeitplan für deren Verlauf dokumentiert.
		Außerdem beinhaltet der Projektplan alle wichtigen Bedingungen für das Projekt.
	\subsection{Projektüberblick}
		Das zu erstellende Programm soll Auskunft über (mögliche) Kollisionen zwischen Satelliten und
		Weltraummüll geben. Dazu werden die TLE Daten verwendet und die Simulation wird mittels einem vom
		Kunden gelieferten Algorithmus durchgeführt.
		
	\subsection{Entwicklungsphilosophie}
		Im Verlauf des Projektes sollen solide Ingenieurprinzipien angewendet werden, um unter Einhaltung 
		des vorgegebenen Zeitplans ein Endprodukt zu liefern, das eine hohe Qualität besitzt, zuverlässig
		arbeitet und allen Kundenwüschen entspricht.\newline\newline
		Alle Dokumente werden immer vervollständingt und gepflegt, um am Projektende eine ausführliche 
		Dokumentation zu haben.
		
\section{Formale Grundlagen}
	\subsection{Vertragliche Anforderungen an die Projektdurchführung}
		Das Projekt soll den gegebenen Zieltermin (31.01.2013) einhalten.
	\subsection{Vertragliche Anforderungen an das Produkt}
		Das Endprodukt soll allen Kundenwünschen entsprechen und auf der Zielumgebung fehlerfrei und
		problemlos funktionieren. Der Umfang des Produkts ist im Abschnitt 3.2 Lieferumfang näher beschrieben.
		
\newpage
\section{Beschreibung des Projekts}
	\subsection{Arbeitsumfang}
		Das Projekt gliedert sich in folgende Teilaufgaben:
			\begin{enumerate}
				\item\textit{Analyse} \\
				Die Anforderungen und Erwartungen des Kunden werden gesammelt;
				\item\textit{Projektplan} \\
				Es werden ein Terminplan und die Arbeitspakete erstellt;
				\item\textit{Spezifikation} \\
				Alle während der Kundenbefragung gesammelte Anforderungen und das zu entwickelnde System
				werden formal und detailliert in der Spezifikation zusammengefasst;
				\item\textit{Spezifikationsreview} \\
				Die Spezifikation wird beurteilt und korrigiert;
				\item\textit{Benutzerhandbuch} \\
				Es wird mit der Anfertigung eines Benutzerhandbuches begonnen;
				\item\textit{Entwurf} \\
				Ein genauer Plan der Softwarearchitektur wird erstellt - Gliederung des Gesamtsystems in
				einzelnen Modulen, Bestimmung deren Schnittstellen usw. Auch die Benutzeroberfläche wird
				angefertigt;
				\item\textit{Implementierung} \\
				Die einzelnen Komponenten des Systems werden in Java implementiert;
				\item\textit{Modultest}  \\
				Die Softwarekomponenten werden auf Fehler getestet und die Implementierung wird bei Bedarf
				korrigiert;
				\item\textit{Integration} \\
				Die einzelnen Module werden zum Gesammtprogramm zusammengeführt;
				\item\textit{Integrationstest} \\
				Das Gesamtsystem wird auf Schnittstellenfehler getestet. Damit wird auch die
				Funktionalität des Programms überprüft. Es muss ein Systemtestprotokoll entstehen;
				\item\textit{Übergabe}		
			\end{enumerate}
	\subsection{Lieferumfang}
		\begin{itemize}
		 	\item Das ausführbare Programm
			\item Quellcode
			\item Benutzerhandbuch
			\item Dokumentation (Spezifikation, Entwurf, Testplan, Testprotokoll)
		\end{itemize}
		Liefermedium: CD
	\subsection{Budget}
		Das Projekt wird von 3 Entwicklern mit einem Zeitbudget von jeweils 180 Stunden durchgeführt.
		
\section{Risiken}
	\subsection{Risiken und ihre Bewertung}
		\begin{enumerate}
		\item \textbf{Verzögerung} \\
			Durch Fehleinschätzung oder unglückliche Ereignisse kann die Fertigstellung des
			Projekts verzögert werden. \\
			\textbf{Bewertung:} 
			Sehr problematisch \\
			\textbf{Wahrscheinlichkeit:} 
			Hoch, mit Abweichungen vom Best-Case muss immer gerechnet werden. \\
			\textbf{Strategie:} 
			Regelmäßige Evaluierung des Zeitplans.
		\item \textbf{Probleme mit Software von Drittanbietern} \\
			Software von Drittanbietern kann versagen. \\			
			\textbf{Bewertung:} 
			Schwerwiegend, da im schlimmsten Falle das Produkt nicht mehr
			funktionsfähig ist und möglicherweise keine Lösung gefunden werden kann. \\
			\textbf{Wahrscheinlichkeit:}
			Gering \\
			\textbf{Strategie:}
			Wählen solider und bewährter Plattformen und Bibliotheken kann das
			Risiko von Problemen minimiert werden.
		\item \textbf{Personelle Probleme} \\
			Ausfall eines Teammitglieds. \\
			\textbf{Bewertung:}
			Moderat, abhängig vom Ausmaß. \\
			\textbf{Wahrscheinlichkeit:}
			Unvorhersehbar, in kleinem Maße zu erwarten. \\
			\textbf{Strategie:}
			Im Notfall kann der Arbeitsumfang reduziert werden. \newpage
		\item \textbf{Kompatibilität} \\
			Das Programm läuft nicht auf der Zielplattform. Möglich wäre z.B. dass das Programm
			nicht auf dem entsprechenden Server läuft. \\
			\textbf{Bewertung:}
			Lösbar, könnte aber im schlimmsten Falle die Fertigstellung verzögern. \\
			\textbf{Wahrscheinlichkeit:}
			Gering, abhängig von der Anzahl der Tests. \\
			\textbf{Strategie:}
			Frühzeitige Feststellung der genauen Laufzeitumgebung auf der Zielplattform
			und entsprechende Tests.			
		\end{enumerate}
	\subsection{Maßnahmen zur Reduktion der Risiken}
		\begin{itemize}
		\item Die Zielplattform muss frühzeitig festgestellt werden. Es müssen regelmäßige, 
		ausführliche Tests auf dieser Plattform vorgenommen werden.
		\item Der Zeitplan muss regelmäßig evaluiert werden. Bei absehbaren Problemen sind
		sofort bei Betreuern melden.
		\item Eingesetzte Dritt-Software muss höchsten Qualitätsstandards genügen und 
		langjährig bewährt sein. Nur dadurch können Probleme mit Dritt-Software vermieden
		werden.
		\item Sollte ein Entwickler kurzfristig ausfallen ist dieser verpflichtet sofort Bescheid zu
		geben und der Betreuer soll darüber benachrichtigt werden.
		\item Die Kommunikation zwischen den Mitarbeitern sollte immer Vorrang haben. Bei Unklarheiten
		oder Problemen sollen immer alle beteiligten Personen einbezogen werden. Nur
		durch regelmäßigen Informationsaustausch können Entwicklungspannen und Missverständnisse 
		vermieden werden.
		\end{itemize}
	\subsection{Notfallpläne}
	\textbf{Verzögerung:}
	Durch regelmäßige Evaluierung des Zeitplans sollte eine Überschreitung
	des Zeitplans frühestmöglich festgestellt werden. Wenn festgestellt werden muss, dass wir das Problem 		nicht in den Griff bekommen, muss sofort Rücksprache mit dem Betreuer gehalten werden. \\ \\
	\textbf{Probleme mit Software von Drittanbietern:}
	Im Falle von Problemen mit Dritt-Software sollte ein Workaround gefunden werden. \\ \\
	\textbf{Ausfall eines Mitarbeiters:}
	Der Arbeitsaufwand wird vom Betreuer reduziert. \\ \\
	\textbf{Kompatibilität:} 
	Probleme mit der Kompatibilität auf der Zielplattform müssen schon
	im Vorfeld vermieden werden. Sollten sie bei der Inbetriebnahme auftreten sind
	Verzögerungen unvermeidlich. \\ \\
	
\section{Entwicklungsplan}
	\subsection{Arbeitspakete}
		Das Projekt zerlegt sich in folgende Arbeitspakete:
		\begin{enumerate}
			\item Projektplan
			\item Spezifikation
			\item Entwurf
			\item Handbuch und Implementierung
			\item Unittest
			\item Integrationstest
			\item Auslieferung
		\end{enumerate}
		Einhergehend mit der Spezifikation sollen verschiedene Layouts der GUI auf ihre Nützlichkeit in
        einer Webanwendung geprüft werden um ein benutzerfreundliches Webfrontend erstellen zu
		können. Nach dem Entwurf soll auch eine erste Version des Benutzerhandbuches erstellt
		werden, die dann parallel zur „Implementierung“ erweitert und angepasst wird. Unittests werden
		jeweils nach Fertigstellung der einzelnen Module erstellt und durchgeführt.
		
	\subsection{Zeitplanung und Meilensteine}
		
		\begin{tabular}{|l|l|p{5,5cm}|l|}
        \hline
        \textbf{Nr.} & \textbf{Name} & \textbf{Abzugebende Dokumente} & \textbf{Termin} \\
        \hline
        1 & Projektplan & Projektplan und Analysenotizen & 29.10.2012 \\
        \hline
        2 & Spezifikation & Spezifikation und UI-Prototyp & 15.11.2012 \\
        \hline
        3 & Review & keine & TBA \\
        \hline
        4 & Spezifikationskorrektur & Überarbeitete Spezifikation & 29.11.2012 \\
        \hline
        5 & Entwurf & Entwurfdokumente & 13.12.2012 \\
        \hline
        6 & Implementierung I & Alpha Implementierung und Systemtestplan & 31.12.2012 \\
        \hline
        7 & Implementierung II & Beta Implementierung und Modultestdokumente & 13.01.2013 \\
        \hline
        8 & Abgabe der Implementierung & Release Candidate und Systemtestprotokoll & 27.01.2013 \\
        \hline
        9 & Auslieferung & siehe Lieferumfang & 31.01.2013 \\
        \hline
        \end{tabular}\\ \\ \\ \newpage Die im Projekt vorgesehenen Entwicklungsphasen sind im Diagramm dargestellt: 		\\ \\
        \includegraphics[scale=0.55]{ColSim.png} \\
        \newpage
        Hierbei wurden folgende Abkürzungen verwendet: \\ \\
        \textbf{Oberphasen:}     
        \begin{itemize}
        \item SPEZ - Projektplanung und Analyse
        \item ENTW - Entwurf
        \item CODE - Implementierung
        \item TEST - Test 
        \end{itemize}
        \textbf{Unterphasen:} 
        \begin{itemize}
        \item ANAL - Analyse
        \item PLAN - Erstellung des Projektplans
        \item SPEZ - Erstellung der Spezifikation
        \item SREW - Review der Spezifikation
        \item SKOR - Korrektur der Spezifikation
        \item ENTW - Erstellung des Entwurfs
        \item CODE - Implementierung
        \item CKOR - Korrektur der Implementierung
        \item MTEST - Modultest
        \item STEST - Systemtest
        \end{itemize}
        
        
        	\subsubsection{Meilensteinverantwortliche}
        	\begin{tabular}{|{c}|l|}
        	\hline        	
        	\textbf{Meilenstein} & \textbf{Verantwortlicher} \\
        	\hline
        	M1 & Aleksander Zotov \\
        	\hline
        	M2 & Benedikt Markt \\
        	\hline
        	M3 & Aliaksei Babkovich \\
			\hline        	
        	M4 & Aleksander Zotov \\
			\hline        	
        	M5 & Benedikt Markt \\
        	\hline
        	M6 & Aliaksei Babkovich \\
        	\hline
        	M7 & Aleksander Zotov \\
			\hline        	
        	M8 & Benedikt Markt \\
        	\hline
        	M9 & Aliaksei Babkovich \\ 
        	\hline
        	\end{tabular} \\ 
        	\newpage
        \subsubsection{Termindriftdiagramm} 
                \includegraphics[scale=0.55]{satpro_termindrift.png} \\
        	
\section{Entwicklungsprozess}
	\subsection{Dokumentation}
	Auflistung der Dokumente, die im Verlauf des Projekts erstellt und gepflegt werden müssen:	
	\begin{itemize}
	\item Analysenotizen
	\item Projektplan
	\item Begriffslexikon
	\item Spezifikation
	\item Entwurf
	\item Benutzerhandbuch
	\item Testplan
	\item Testprotokoll	
	\end{itemize}
	\subsection{Qualitätssicherung}
	Während des gesamten Projektes soll eine hohe Qualität aller Dokumente und auch
	der Software selbst gewährleistet sein. Dies soll durch laufende Kontrollen, Vergleiche
	mit der Spezifikation und daraufhin ggf. Verbesserung / Änderung erreicht werden. Die
	Termineinhaltung soll durch ständige Erfassung des Fortschritts des Projektes erreicht
	werden. So können auch mögliche Abweichungen vom Termin der Auslieferung schon
	früh erkannt werden. Reviews, mit Einbeziehung des Kunden, finden an den dafür im
	Zeitplan vorgesehenen Terminen statt.
	\subsection{Design- und Programmierrichtlinien}
	Der Programmcode wird unter Beachtung von ''Code Conventions
	for the Java TM Programming Language'' erstellt. Die Code Conventions von
	Oracle sind erreichbar unter folgender Adresse: \\
	\url{http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html}
	\subsection{Einsatz von Werkzeugen}
	\begin{itemize}
	\item Eclipse Juno
	\item GTD Manager
	\item Texmaker 3.5
	\item TortoiseSVN
	\item RevAger
	\item Tulip
	\item Codecover
	\item UMLet
	\item TSM
	\end{itemize}
	
\section{Projektorganisation}
	\subsection{Schlüsselpersonen}
	\begin{tabular}{p{5cm} l}
	\textbf{Kunde:} & Bastian Calaminus \\
	& E-Mail: Bastian.Calaminus@dlr.de \\
	\\
	\textbf{Interner Kunde:} & Jan-Peter Ostberg \\
	& E-Mail: Jan-Peter.Ostberg@informatik.uni-stuttgart.de \\
	& Telefon: +49 711 685-88555 \\
	\\
	\textbf{Betreuer:} & Daniel Kulesz \\
    & E-Mail: daniel.kulesz@informatik.uni-stuttgart.de \\
	& Telefon: +49 711 685-88352 \\ 
	\\
	\textbf{Projektleiter:} & Aleksander Zotov \\
	& E-Mail: a.zotov9@gmail.com \\
	\\
	\textbf{Usability Engineer:} & Benedikt Markt \\
	& E-Mail: bene.markt@gmail.com \\
	\\
	\textbf{Projektmitarbeiter:} & Aliaksei Babkovich \\
	& E-Mail: molekula1@gmail.com \\
	\end{tabular}
	\newpage

\section{Versionshistorie}
	\textbf{Version 1.0 (24.10.2012)}
		\begin{itemize}
		\item Erste Version des Projektplans fertiggestellt
		\end{itemize}
	\textbf{Version 1.1 (25.10.2012)}
		\begin{itemize}
		\item Gantt-Diagramm korrigiert
		\item Meilensteinverantwortliche hinzugefügt
		\end{itemize}
	\textbf{Version 1.2 (29.10.2012)}
		\begin{itemize}
		\item Termindriftdiagramm hinzugefügt
		\end{itemize}
	\textbf{Version 1.3 (30.10.2012)}
		\begin{itemize}
		\item Abschnitt 2.1: Liefertemin hinzugefügt
		\item Interner Kunde als Schlüsselperson hinzugefügt
		\item Abschnitt 4 ''Risiken'' hinzugefügt
		\item Design- und Programmierrichtlinien hinzugefügt
		\item Auflistung der angewendeten Werkzeugen hinzugefügt		
		\end{itemize}
	\textbf{Version 1.4 (03.01.2013)}
		\begin{itemize}
		\item Termindriftdiagramm aktualisiert
		\item Termine der Meilensteinen aktualisiert
		\end{itemize}
	
\end{document}